<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:a="http://xmlns.jcp.org/jsf/passthrough"
	xmlns:cc="http://java.sun.com/jsf/composite"
	xmlns:fn="http://java.sun.com/jsp/jstl/functions">

<cc:interface>
	<cc:attribute name="isReading" required="true"
		shortDescription="atributo que indicara el modo consulta de la funcionalidad" />
	<cc:attribute name="tiposDocumentos" required="true"
		shortDescription="atributo que se lista en el combo de tipos de documento" />
	<cc:attribute name="bean" required="true"
		shortDescription="Referencia a objeto FileUploadBean que se requiere para manejar la lógica" />
	<cc:attribute name="tiposArchivos" required="false"
		shortDescription="lista de extensiones de archivos validos separados por coma(,)"
		default="doc, xls, pdf, txt, png, jpg, tif, docx, xlsx, ppt, pptx, gif, jpeg" />
	<cc:attribute name="labelUpload" required="false"
		shortDescription="label que se mostrara en el componente upload"
		default="${msg['bienes.fileUpload.anexo']}" />
	<cc:attribute name="required" required="false"
		shortDescription="Determina si es requerido el valor"
		default="false" />
	<cc:attribute name="mensajeTipoInvalido" required="false"
		shortDescription="mensaje a mostrar cuando el archivo no cumple con la extension"
		default="Sólo se permiten tipos de archivo .doc, .xls, .pdf, .txt, .png, .jpg, .tif, .docx, .xlsx, .ppt, .pptx, .gif y .jpeg" />
</cc:interface>

<cc:implementation>
	<h:panelGrid columns="4" columnClasses="firstColumnStyle, , , "
		width="100%">
		<h:panelGrid columns="2">
			<h:outputLabel value="${msg['bienes.fileUpload.tipoDocumento']}"
				for="tipoDocumentoFileUpload" />
		</h:panelGrid>
		
		<h:panelGrid>
			<h:selectOneMenu id="tipoDocumentoFileUpload"
				value="#{cc.attrs.bean.bienDocumento.tpDocumentoBean.tpDocumento}"
				requiredMessage="${msg['general.requerido']}"
				disabled="#{cc.attrs.isReading}"
				required="#{cc.attrs.required}">
				<f:selectItems value="#{cc.attrs.tiposDocumentos}" />
				
			</h:selectOneMenu>
			<h:message for="tipoDocumentoFileUpload"
				errorClass="validationErrorMessage" showSummary="false" />
		</h:panelGrid>
		
		<h:panelGrid columns="2" style="height:40px">
			<h:outputLabel value="#{cc.attrs.labelUpload}"
				for="uploadDocumento_fileSijyp" />

		</h:panelGrid>
		
		<h:panelGrid id="uploadControlsContainer">
			<rich:fileUpload id="uploadDocumento_fileSijyp" 
			    inmediate="true"
			    immediateUpload="true"
				fileUploadListener="#{cc.attrs.bean.uploadListener}"
				acceptedTypes="#{cc.attrs.tiposArchivos}"
				ontyperejected="alert('#{cc.attrs.mensajeTipoInvalido}');"
				maxFilesQuantity="1" 
				addLabel="${msg['bienes.fileUpload.examinar']}"
				clearAllLabel="" 
				deleteLabel="${msg['bienes.fileUpload.borrar']}"
				doneLabel="${msg['bienes.fileUpload.finalizado']}" listHeight="40px"
				uploadLabel="${msg['bienes.fileUpload.cargar']}"
				clearLabel="${msg['bienes.fileUpload.limpiar']}"
				rendered="#{!cc.attrs.bean.ocultarUpload}"
				sizeExceededLabel="${msg['bienes.fileUpload.excedeMaximo']}">
			</rich:fileUpload>
			<h:inputHidden id="uploadDocumento_fileSijypHid" binding="#{cc.attrs.bean.uploadComponent}" />
			<rich:message for="uploadDocumento_fileSijyp"
				errorClass="validationErrorMessage" showSummary="false" />
			<rich:message for="uploadDocumento_fileSijypHid"
				errorClass="validationErrorMessage" showSummary="false" />
			
			<h:panelGrid id="linkUpload" columns="2" styleClass="rf-fu"
				cellspacing="5" rendered="#{cc.attrs.bean.ocultarUpload}">
				
				<h:commandLink value="#{cc.attrs.bean.bienDocumento.nombre}"
					action="#{cc.attrs.bean.download}"
					immediate="true"
					 />
				<h:commandLink value="${msg['bienes.fileUpload.limpiar']}"
					action="#{cc.attrs.bean.limpiarUpload}"
					rendered="#{!cc.attrs.isReading}">
					<f:ajax execute="@this" render="uploadControlsContainer" />
				</h:commandLink>
			</h:panelGrid>
		</h:panelGrid>

	</h:panelGrid>

	<h:panelGrid width="100%" columns="2"
		columnClasses="firstColumnStyle, ">
		<h:panelGrid columns="2">
			<h:outputLabel value="${msg['bienes.fileUpload.descripcion']}"
				for="descripcionDocFileUpload" />
		</h:panelGrid>
		<h:panelGrid width="100%">
			<h:inputTextarea id="descripcionDocFileUpload" style="width:100%"
				required="false"
				requiredMessage="${msg['general.requerido']}"
				styleClass="long count250"
				value="#{cc.attrs.bean.bienDocumento.descripcion}" rows="4"
				disabled="#{cc.attrs.isReading}"
				a:maxlength="250">
				<f:validateLength maximum="250" />
			</h:inputTextarea>
			<rich:message for="descripcionDocFileUpload" errorClass="validationErrorMessage" showSummary="false" />
		</h:panelGrid>
	</h:panelGrid>
</cc:implementation>

</html>